#ifndef LINKLIST_H
#define LINKLIST_H

#include<iostream>
#include<string>
#include<cstdlib>
using namespace std;

template<class T>

class Node
{
	private:
		T value;
	public:
		Node * next;



		Node(){}
		Node(T t)
		{
			value=t;
		}
		Node(const Node & n)
		{
			value=n.value;
			next=n.next;
		}

		~Node()
		{
		}
		
		void insertAfter(Node<T>* n);
		Node<T> * deleteAfter();
		Node<T> * getNextNode();
		void display()
		{
			cout<<value<<endl;
		}

};



template <class T>
void Node<T>::insertAfter(Node<T>* n)
{
	cout<<"insert"<<endl;
	if(NULL==n)
		exit(1);
	n->next=next;
	next=n;

}


template <class T>
Node<T>*  Node<T>::deleteAfter()
{
	Node<T> * ret=NULL;

	if(next!=NULL)
	{
		ret=next;
		next=next->next;
	}
	return ret;
}

template <class T>
Node<T> * Node<T>::getNextNode()
{
	Node<T> * ret;
	return next;
}




#endif
